#ifndef UDS_CASE_H
#define UDS_CASE_H
#define CASE_CHECK_UDS                                           \
    do                                                           \
    {                                                            \
        if (Init_ste.UDS_s == 0)                                 \
        {                                                        \
            sprintf(msg, "UDS not init");                        \
            return error;                                        \
        }                                                        \
        if ((Init_ste.UDS_port == 0) || (Init_ste.UDS_port > 4)) \
        {                                                        \
            sprintf(msg, "UDS port error");                      \
            return error;                                        \
        }                                                        \
    } while (0)

#define CASE_CHECK_NTC                                   \
    do                                                   \
    {                                                    \
        if (RData[0] == 0x7F)                            \
        {                                                \
            sprintf(msg, "UDS $7F code:%02X", RData[2]); \
            return error;                                \
        }                                                \
    } while (0)

#define CASE_UDS_SEND(len, data, num, msg)                                        \
    do                                                                            \
    {                                                                             \
        TF_log_mem(TAG "UDS TX:", data, len);                                     \
        if (Q_UDS_0(data[0], len - 1, data + 1, Init_ste.UDS_port, &num) != Q_OK) \
        {                                                                         \
            sprintf(msg, "UDS timeout");                                          \
            return error;                                                         \
        }                                                                         \
        TF_log_mem(TAG "UDS RX:", RData, num);                                    \
        if (RData[0] == 0x7F)                                                     \
        {                                                                         \
            sprintf(msg, "UDS $7F code:%02X", RData[2]);                          \
            return error;                                                         \
        }                                                                         \
    } while (0)

#endif